{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 信号的频谱分析\n",
    "\n",
    "1. 傅里叶级数分解——周期信号\n",
    "1. 傅里叶积分——非周期信号\n",
    "1. 傅里叶变换——非周期信号（推广到复数域）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 1. 傅里叶级数分解\n",
    "\n",
    "指将周期函数分解成三角函数（与常数）的和的形式。\n",
    "\n",
    "分解公式：（在 1.6 会解释为何是这样的形式）$$f(x) = a_0 + \\sum^{\\infty}_{n=1}(a_n cos\\ \\frac{n\\pi}{L}x + b_n sin\\ \\frac{n\\pi}{L}x)$$\n",
    "\n",
    "可以类比泰勒级数展开。\n",
    "\n",
    "#### 1.1 系数的计算\n",
    "\n",
    "三角函数 $cos\\ \\frac{n\\pi}{L}x$ 和 $sin\\ \\frac{n\\pi}{L}x$ 在 $[u,\\ u+2L]$ 上具有正交性（u 可为任意值），也就是说**任意两个不同的三角函数（包括常数 1）的积，在该区段的积分为0**. （类比线性代数中，向量正交则内积为 0）\n",
    "\n",
    "因此可以在定义式两边乘上 $cos\\ \\frac{n\\pi}{L}x$ 或 $sin\\ \\frac{n\\pi}{L}x$，然后做 $[0,\\ 2L]$ 上的定积分，即可分别得到 $a_n$ 和 $b_n$ 的表达式：\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "a_0 &= \\frac{1}{2L} \\int^L_{-L}f(t)dt，\\text{（定义式直接积分得到，这里使用了 t 做积分变量，以免和 x 混淆）} \\\\\n",
    "a_n &= \\frac{1}{L} \\int^L_{-L}f(t) cos\\ \\frac{n\\pi}{L}tdt，（\\text{两边乘了}cos\\ \\frac{m\\pi}{L}t） \\\\\n",
    "a_n &= \\frac{1}{L} \\int^L_{-L}f(t) sin\\ \\frac{n\\pi}{L}tdt，（\\text{两边乘了}sin\\ \\frac{m\\pi}{L}t）\n",
    "\\end{align}\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 1.2 这样分解有何好处？\n",
    "\n",
    "信号与系统中，三角函数是最基础的信号之一，使用基础信号的和来表示复杂信号，对信号处理很有好处。\n",
    "\n",
    "#### 1.3 另一个角度\n",
    "\n",
    "三角函数在 $[0, 2\\pi]$ 上具有正交性，可以将傅里叶级数分解看成是一种基变换——**从时间域（$f(x)$）变换到频域（$a_n\\ b_n$）**。\n",
    "\n",
    "#### 1.4 函数的可分解性——狄利克雷收敛定理\n",
    "\n",
    "如果函数 $f(x)$:\n",
    "1. 在 $(x - L,\\ x + L)$ 内除了有限个点外有定义且单值\n",
    "1. 在 $(x - L,\\ x + L)$ 外是周期函数，且周期为 $2L$.\n",
    "1. $f(x)$ 和 $f'(x)$ 在 $(x - L,\\ x + L)$ 内均分段连续（即 $f(x)$ 分段光滑）\n",
    "\n",
    "则傅里叶级数**在连续点收敛于 $f(x)$，在间断点收敛于 $\\frac{f(x-0) + f(x+0)}{2}$.** 即函数 $f(x)$ 可做傅里叶分解。\n",
    "\n",
    "这是一个充分非必要条件！目前还没有发现傅里叶级数分解的充要条件。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 1.5 性质\n",
    "\n",
    "1. 频域 $\\omega_n = \\frac{n\\pi}{L}$ （圆频率）是离散的，n 只取正整数。圆频率 $\\omega$ 的范围为 $[0,\\ \\infty]$.\n",
    "2. 任一个 n 值，都对应了**两个幅值**：$sin\\ \\frac{n\\pi}{L}x$ 的系数 $a_n$ 和 $cos\\ \\frac{n\\pi}{L}x$ 的系数 $b_n$，还有一个常数值 $a_0$."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 1.6 相位到哪里去了？\n",
    "\n",
    "正弦函数有三要素：**振幅、频率和初相位**，你可能会有疑问——傅里叶级数好像不存在初相位的信息，下面就来找一找。\n",
    "\n",
    "傅里叶级数分解是将周期函数分解成三角函数（与常数）的和的形式，因此它的一般形式应该是：\n",
    "$$f(x) = C_0 + \\sum_{n=1}^{\\infty} {C_n cos\\left( \\frac{n\\pi}{L} x+\\phi_n  \\right)}=C_0 + \\sum^{\\infty}_{n=1}\\left(C_n cos\\phi_n\\ cos\\ \\frac{n\\pi}{L}x - C_n sin\\phi_n\\ sin\\ \\frac{n\\pi}{L}x\\right)$$\n",
    "\n",
    "对比最初的分解公式，有：\n",
    "$$\\begin{cases}\n",
    "a_0 = C_0 \\\\\n",
    "a_n = C_n cos\\phi_n \\\\\n",
    "b_n = - C_n sin\\phi_n\n",
    "\\end{cases}$$\n",
    "\n",
    "发现相位信息就包含在 $a_n$ 和 $b_n$ 中"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 1.7 复指数形式的傅里叶级数\n",
    "\n",
    "复指数函数形式，即用复指数函数的和的形式来表示原函数。\n",
    "使用复指数与三角函数的关系式\n",
    "$$cos\\ x = \\frac{e^{ix} + e^{-ix}}{2} \\\\\n",
    "sin\\ x = \\frac{e^{ix} - e^{-ix}}{-2i}$$\n",
    "可将傅里叶级数化成复指数形式：\n",
    "\n",
    "$$f(x) = a_0 + \\sum_{n=1}^{\\infty} \\frac{a_n - ib_n}{2}e^{i\\frac{n\\pi}{L}x} + \n",
    "\\sum_{n=1}^{\\infty} \\frac{a_n + ib_n}{2}e^{-i\\frac{n\\pi}{L}x}$$\n",
    "\n",
    "现在利用 1.6 的结果，将 $C_n$ 代入上式，有\n",
    "\n",
    "$$f(x) = C_0 + \\sum_{n=1}^{\\infty} \\frac{C_n\\left(cos\\phi_n + isin\\phi_n\\right)}{2}e^{i\\frac{n\\pi}{L}x} + \n",
    "\\sum_{n=1}^{\\infty} \\frac{C_n\\left(cos\\phi_n - isin\\phi_n\\right)}{2}e^{-i\\frac{n\\pi}{L}x} \\\\\n",
    "=C_0 + \\sum_{n=1}^{\\infty} \\frac{C_n}{2}e^{i\\phi_n}e^{i\\frac{n\\pi}{L}x} + \n",
    "\\sum_{n=1}^{\\infty} \\frac{C_n}{2}e^{-i\\phi_n}e^{-i\\frac{n\\pi}{L}x}$$\n",
    "\n",
    "为了得到更简洁的表达式，把第三项看成是圆频率为 $\\frac{-n\\pi}{L}$（负频率！）的复指数函数，令：\n",
    "$$\\begin{cases}\n",
    "D_n = \\frac{C_n}{2}e^{i\\phi_n} \\\\\n",
    "D_0 = C_0 \\\\\n",
    "D_{-n} = \\frac{C_n}{2}e^{-i\\phi_n}\n",
    "\\end{cases}$$\n",
    "最终得到：\n",
    "$$f(x) = \\sum_{n=-\\infty}^{\\infty} D_n e^{i\\frac{n\\pi}{L}x}$$\n",
    "\n",
    "\n",
    "#### 1.7.1 求解 $D_n$\n",
    "\n",
    "在之前的式子两端同时乘以 $e^{-ik\\frac{\\pi}{L}x}$ 然后两边在任一个周期段$[t,\\ t+2L]$上做积分，化简可得\n",
    "\n",
    "$$D_n = \\frac{1}{2L}\\int^{t+2L}_{t} f(x) e^{-in\\frac{\\pi}{L}x} dx$$\n",
    "\n",
    "#### 1.7.2 性质分析\n",
    "\n",
    "1. 为了获得上面这个表达式，我们把圆频率 $\\frac{n\\pi}{L}$ 从 $[0,\\ \\infty]$ 拓展到了 $[-\\infty,\\ \\infty]$，这就导致一个问题：负频率到底是个啥？有啥意义？\n",
    "    从上面的推导过程看，负频率的系数的模长，和对应的正频率**模长相等**，都为 $\\frac{C_n}{2}$，即**同频率的余弦信号 $C_n cos\\left( \\frac{n\\pi}{L} x+\\phi_n  \\right)$ 幅值的一半**。\n",
    "\n",
    "    但是负频率系数的**相位是对应正频率相位 $\\phi_n$ 的负数**。\n",
    "\n",
    "    这就好像是把正频域信号一半的能量分到负频域去了。**好处是公式变简洁了，计算更方便**；\n",
    "\n",
    "    坏处就是变得不直观了，但实际上把正负频率的幅值相加，就能得到对应的余弦函数的幅值。\n",
    "1. $D_n$ 是圆频域 $\\frac{n\\pi}{L}$ 上的函数，它包含对应的余弦函数 $C_n cos\\left( \\frac{n\\pi}{L} x+\\phi_n  \\right)$ 的幅值信息和相位信息，而频率信息在 $e^{i\\frac{n\\pi}{L} x}$中\n",
    "1. **周期 $2L$ 越大，求和间隔 $\\pi \\over L$ 越小，离散频谱的密度越大，各频率分量的幅值 $D_n$ 越小。**\n",
    "1. **周期趋于无穷时，求和变成积分，频谱也从离散变成连续，各频率分量的幅值无限接近于 0.**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2. 傅里叶积分\n",
    "\n",
    "傅里叶级数分解只适用于周期函数（或者做了周期延拓的信号段），\n",
    "将傅里叶分解拓展到 $[-\\infty,\\ \\infty]$ 上非周期函数，就得到傅里叶积分。\n",
    "\n",
    "若把非周期函数看作周期为 $\\infty$ 的函数，就能得到傅里叶积分的形式。\n",
    "\n",
    "傅里叶级数的形式为 $f(x) = a_0 + \\sum^{\\infty}_{n=1}(a_n cos\\ \\frac{n\\pi}{L}x + b_n sin\\ \\frac{n\\pi}{L}x$，\n",
    "\n",
    "将周期推广到无穷，即 $L \\to \\infty$，现在将圆频率 $\\omega_n = \\frac{n\\pi}{L}$ 替换到上式中，可发现 $$\\Delta\\omega = \\omega_n - \\omega_{n-1} = \\frac{\\pi}{L} \\to 0$$\n",
    "\n",
    "此时 $\\Delta\\omega$ 变成了微元 $d\\omega$，傅里叶级数则变成了积分形式：（这个变换要求 $f(x)$ 在 $[-\\infty,\\ \\infty]$ 上绝对可积）\n",
    "$$\\sum^{\\infty}_{n=1}...\\Delta\\omega \\to \\int^{\\infty}_{0}...d\\omega$$\n",
    "积分中 $\\omega$ 的上下限分别对应求和中 $n$ 的上下限，用 $w$ 取代掉 $n$ 和 $L$，再利用 (1.1) 中的三个系数求解式，得到傅里叶积分公式（$a_0$ 变成了 0）：\n",
    "$$\n",
    "\\begin{align}\n",
    "f(x) &= \\int^{\\infty}_{0}[A(\\omega)cos\\ \\omega x + B(\\omega)sin\\ \\omega x]d\\omega \\\\\n",
    "A(\\omega) &= \\frac{1}{\\pi}\\int^{\\infty}_{-\\infty}f(t)cos\\ \\omega t dt \\\\\n",
    "B(\\omega) &= \\frac{1}{\\pi}\\int^{\\infty}_{-\\infty}f(t)sin\\ \\omega t dt\n",
    "\\end{align}$$\n",
    "\n",
    "\n",
    "#### 2.1 成立的前提\n",
    "它成立的条件相比傅里叶级数，去掉了周期性的要求，添加了绝对可积的要求。\n",
    "\n",
    "总而言之，一个分段光滑且绝对可积的函数，一定可以用傅里叶积分表示\n",
    "\n",
    "#### 2.2 值得注意的性质\n",
    "\n",
    "观察傅里叶积分公式，能看出：\n",
    "1. 圆频率 $\\omega$ 的范围仍然为 $[0,\\ \\infty]$. 但是不再离散，而是变得连续了。\n",
    "1. **这里的 $A(\\omega)$ 和 $B(\\omega)$ 的物理意义不是各频率幅值！而是频率密度！**这是离散谱与连续谱的差别。\n",
    "    由 1.7.2 可知，周期趋于无穷后，各频率的幅值都会变成 0，而 $A(\\omega)$ 和 $B(\\omega)$ 显然不一定是 0，因此它们肯定不是各频率的幅值。\n",
    "    又考虑到对 $\\omega$ 积分就得到 $f(x)$，类比对密度积分得到质量。可知  $A(\\omega)$ 和 $B(\\omega)$ 是频谱（$\\omega$）上的密度函数。\n",
    "    积分就是“求面积”，任一点的面积为0，所以任意频率的幅值为 0. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3. 傅里叶变换\n",
    "\n",
    "积分变换，就是把函数从当前域变换到另一个域上，这个新的域不一定能与什么实际存在的东西对应。（laplace 变换域就是如此）\n",
    "\n",
    "好处是在当前域上复杂的问题，在新的域上可能会变得很简单，而且从新的角度看问题，一些原本不明显的东西会凸显出来。\n",
    "\n",
    "傅里叶变换，其实就是把傅里叶积分化成复指数形式（类比傅里叶级数的复指数形式）\n",
    "\n",
    "由第 2 节的傅里叶积分公式，有\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "f(x) &= \\int^{\\infty}_{0}[A(\\omega)cos\\ \\omega x + B(\\omega)sin\\ \\omega x]d\\omega \\\\\n",
    "&= \\frac{1}{\\pi}\\int^{\\infty}_{0}\\left[\\int^{\\infty}_{-\\infty} f(t)\\left( cos \\omega t\\ cos\\ \\omega x + sin \\omega t\\ sin \\omega x\\right)dt\\right]d\\omega \\\\\n",
    "&= \\frac{1}{\\pi}\\int^{\\infty}_{0} d\\omega \\int^{\\infty}_{-\\infty} f(t)cos \\omega(x-t)\\ dt\\\\\n",
    "&= \\frac{1}{2\\pi}\\int^{\\infty}_{0} d\\omega \\int^{\\infty}_{-\\infty} f(t)\\left[ e^{i\\omega(x-t)} + e^{-i\\omega(x-t)} \\right]dt\\\\\n",
    "&= \\frac{1}{2\\pi}\\int^{\\infty}_{-\\infty}\\ dt \\left[ \\int^{\\infty}_{0}f(t)e^{i\\omega(x-t)} \\ d\\omega + \\int^{\\infty}_{0}f(t)e^{-i\\omega(x-t)} \\ d\\omega\\right] \\\\\n",
    "&= \\frac{1}{2\\pi}\\int^{\\infty}_{-\\infty}\\ dt \\left[ \\int^{\\infty}_{0}f(t)e^{i\\omega(x-t)} \\ d\\omega + \\int^{0}_{-\\infty}f(t)e^{i\\omega(x-t)} \\ d\\omega\\right]，\n",
    "\\text{里面的第二项换元：} (-\\omega) \\to \\omega \\\\\n",
    "&= \\frac{1}{2\\pi}\\int^{\\infty}_{-\\infty}\\ dt \\int^{\\infty}_{-\\infty}f(t)e^{i\\omega(x-t)} \\ d\\omega \\\\\n",
    "&= \\frac{1}{2\\pi}\\int^{\\infty}_{-\\infty} \\left[\\int^{\\infty}_{-\\infty}f(t)e^{-i\\omega t}\\ dt \\right] e^{i\\omega x}\\ d\\omega \n",
    "\\end{align}$$\n",
    "\n",
    "这样我们得到傅里叶变换与逆变换的公式：\n",
    "$$\\begin{cases}\n",
    "\\begin{align}\n",
    "F(\\omega) &= \\int^{\\infty}_{-\\infty} f(t)e^{-i\\omega t} \\ dt \\\\\n",
    "f(x) &= \\frac{1}{2\\pi}\\int^{\\infty}_{-\\infty} F(\\omega)e^{i\\omega x}\\ d\\omega\n",
    "\\end{align}\n",
    "\\end{cases}$$\n",
    "\n",
    "推导过程中的换元操作，导致了负频率的出现，这和傅里叶级数的复指数形式推导是一样的。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3.1 $F(\\omega)$ 的物理含义\n",
    "\n",
    "1. 和 2.2.2 所说的一样，$F(\\omega)$ 也是一个频谱密度函数（指圆频率）。（不过和 $A(\\omega)$ 不同的是，这里把常系数 $\\frac{1}{2\\pi}$ 放到了逆变换公式中）\n",
    "\n",
    "1. $F(\\omega)$ 的值在复数域，包含两个属性：幅值密度 $|F(\\omega)|$ 与相位谱 $arg\\ F(\\omega)$（对应的离散性质为 1.7.2.2）\n",
    "\n",
    "    **和离散的情况相同，幅值密度谱 $|F(\\omega)|$ 为偶函数，相位谱 $arg\\ F(\\omega)$ 为奇函数。**\n",
    "    \n",
    "**NOTE**: \n",
    "\n",
    "1. $F(\\omega)$ 也经常被写成 $F(j\\omega)$。（原因好像是为了强调这是拉普拉斯变换中 $s=j\\omega$ 的特殊情况）\n",
    "\n",
    "1. 有时为了对称性，会使用傅里叶变换的其他定义（将推导式的最后一步再做简单运算即可得到）：\n",
    "$$\\begin{cases}\n",
    "\\begin{align}\n",
    "F(\\omega) &= \\sqrt{\\frac{1}{2\\pi}} \\int^{\\infty}_{-\\infty} f(t)e^{-i\\omega t} \\ dt \\\\\n",
    "f(x) &= \\sqrt{\\frac{1}{2\\pi}} \\int^{\\infty}_{-\\infty} F(\\omega)e^{i\\omega x}\\ d\\omega\n",
    "\\end{align}\n",
    "\\end{cases}$$\n",
    "\n",
    "$$\\begin{cases}\n",
    "\\begin{align}\n",
    "F(f) &= \\int^{\\infty}_{-\\infty} f(t)e^{-i2\\pi f t} \\ dt \\\\\n",
    "f(x) &= \\int^{\\infty}_{-\\infty} F(f)e^{i2\\pi f x}\\ df\n",
    "\\end{align}\n",
    "\\end{cases}$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3.2 傅里叶变换的性质（经常用于简化计算）\n",
    "\n",
    "1. 对称性：$f(t) \\to^{FT} F(\\omega) \\to^{FT} 2\\pi f(t)$\n",
    "\n",
    "    在逆变换不好计算时，可以通过对 $F(\\omega)$ 做正变换来求原函数。\n",
    "\n",
    "1. FT 特征函数：$FT[f(t)] \\to Af(\\omega)$\n",
    "\n",
    "    即傅里叶变换的结果仍为它自己的函数（相差一个系数，该系数称作特征值）\n",
    "1. 线性：积分变换都是线性操作"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3.3 FT 的成立条件（充分非必要）\n",
    "\n",
    "待续\n",
    "\n",
    "#### 3.3.1 广义傅里叶变换\n",
    "\n",
    "待续"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3.4 典型信号的傅里叶变换\n",
    "\n",
    "待续"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3.5 时域与频域的性质对比\n",
    "\n",
    "![](时域与频域的性质对比.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 参考资料\n",
    "\n",
    "- [傅里叶变换的意义是什么？](https://www.zhihu.com/question/30242595/answer/179440582)\n",
    "- [复数形式傅里叶变换的物理意义](https://www.zhihu.com/question/20977844)\n",
    "- [数学物理方法 - 顾樵](https://book.douban.com/subject/10517521/)，傅里叶部分"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "@webio": {
   "lastCommId": "eaf92831230d4be08f33b5919deae9ac",
   "lastKernelId": "22a46457-386e-4688-bba5-d2389a7e59b5"
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
